home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1996 February / macformat-034.iso / mac / Shareware City / Developers / simple-sockets-11-c / Simple Sockets 1.1 ƒ / ip ƒ / ip.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-27  |  2.4 KB  |  98 lines  |  [TEXT/CWIE]

  1. /*
  2.  * ip.h
  3.  *
  4.  * ANSI Header file for ip.c.
  5.  *
  6.  */
  7.  
  8. #ifndef __IP_HEADER__
  9. #define __IP_HEADER__
  10.  
  11. #include "iptime.h"
  12.  
  13. /* #defines */
  14.  
  15. #define kNumSockets 32        /* PLEASE GOD DON'T CHANGE THIS NUMBER!! */
  16.  
  17. #define AF_INET            2
  18. #define IPPROTO_TCP        6
  19. #define IPPROTO_UDP        17
  20. #define IPPORT_RESERVED    1024
  21.  
  22. #define kHeaderSize 20        /* 8 for UDP + ?? for IP */
  23.  
  24. /* types */
  25.  
  26. struct mac_socket {
  27.     StreamPtr        stream;
  28.     unsigned long    remoteHost;
  29.     unsigned short    remotePort;
  30.     unsigned long    localHost;
  31.     unsigned short    localPort;
  32.     unsigned short    mtu;                /* for UDP */
  33.     /* flags - in future, pack bits! */
  34.     char            type;                /* IPPROTO_TDP or IPPROTO_UDP */
  35.     char            connected;
  36.     char            hasData;            // boolean
  37.     char            bound;                /* boolean */
  38.     
  39.     unsigned short    unreadBytes;        // *MDT 8/28/95
  40. };
  41. typedef struct mac_socket mac_socket;
  42.  
  43. #define sockaddr sockaddr_in
  44. struct  sockaddr_in {
  45.     unsigned short        sin_family;    /* type of connection - unused! */
  46.     unsigned short        sin_port;    /* connection port */
  47.     unsigned long        sin_addr;    /* host IP number */
  48.     char                sin_zero[8];
  49. };
  50.  
  51.  
  52. /*
  53.  *Function Headers
  54.  */
  55.  
  56. typedef OSErr (*Spin)(void);
  57.  
  58. /* Mac-Specific */
  59. OSErr InitMacTCP(void);
  60. void DisposeMacTCP(void);
  61. void SetSpin(Spin spinRoutine);
  62.  
  63. /* DNS */
  64. void num2dot(unsigned long ip, char *dot);
  65. OSErr ConvertStrToAddr(char *name, unsigned long *ipNum);
  66. unsigned long GetHostByName(char *name);
  67. int GetProtoByName(char *name);
  68. int GetHostName(char *name, int namelen);
  69. int GetHostNameOnly(char *name);
  70. int GetMyIPDot(char *num);
  71. unsigned long GetMyIPNum(void);
  72. int getsockname (int sock, struct sockaddr_in *localaddr, int *addrlen);
  73.  
  74.  
  75. #define gethostname GetHostName
  76. #define gethostbyname GetHostByName
  77. #define getprotobyname GetProtoByName
  78.  
  79. /* Generic */
  80. int socket(int family, int type, int protocol);
  81. int connect(int sock, struct sockaddr_in *raddr, int alen);
  82. int write (int sock, Ptr data, int len);
  83. int read (int sock, Ptr buf, int len);
  84. int close(int sock);
  85.  
  86. /* TCP Only*/
  87. int bind (int sock, struct sockaddr_in *name, int alen);
  88. int listen(int socket, int queuelen);
  89. int accept (int sock, struct sockaddr_in *sin, int *alen);
  90. int select (int nfds, unsigned long *readfs, struct timeval *timeout);
  91. int old_select (int nfds, unsigned long *readfs);
  92.  
  93. /* UDP Only */
  94. int recvfrom (int sock, char *buf, int len, int flags, struct sockaddr_in *sin, int *alen);
  95. int sendto (int sock, char *data, int len, int flags, struct sockaddr_in *sin, int alen);
  96.  
  97.  
  98. #endif /* __IP_HEADER__ */